<?php

namespace App\Console\Commands;


use Illuminate\Console\Command;
use App\Service\Dir;
use Illuminate\Support\Facades\DB;


class DelNewsCommand extends Command
{
    //  删除文章（可以重复执行）
    // php artisan command:del-news id
    //  sudo -u www php /www/wwwroot/slh/laravel.test/artisan command:del-news id
    //  sudo -u www php /www/wwwroot/shenlanhui/laravel/artisan command:del-news id


    protected $signature   = 'command:del-news {id} ';
    protected $description = '删除文章，以及清理其他表的相关数据';

    public function __construct()
    {
        parent::__construct();
    }

    // 执行的命令
    public function handle()
    {
        $id = $this->argument('id');
        if(empty($id)){
            return $this->error('请指定要删除的文章id！');
        }

        // 保存数据
        DB::beginTransaction();
        try{

            // 删除文章
            DB::table('news')->where('id', $id)->delete();

            // 删除文章详情
            DB::table('news_desc')->where('news_id', $id)->delete();

            // 删除文章标签
            DB::table('news_tag')->where('news_id', $id)->delete();

            // 删除文章栏目
            DB::table('news_cate')->where('news_id', $id)->delete();

            DB::commit();
        } catch(\Exception $e){
            DB::rollBack();

            return $this->error($e->getMessage());
        }


        $this->comment('执行完成！');

        return true;
    }
}

